Model-View-Controller এর কাজের প্রক্রিয়া

Java Technologies - জেএসপি (JSP) - JSP বেস্ট প্র্যাকটিসেস এবং MVC প্যাটার্ন
189

Model-View-Controller (MVC) একটি ডিজাইন প্যাটার্ন যা জেএসপি (JSP) এবং সার্ভলেট (Servlet) ভিত্তিক ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে খুবই জনপ্রিয়। MVC প্যাটার্নটি অ্যাপ্লিকেশনের বিভিন্ন অংশকে পৃথক করে এবং তাদের মধ্যে একে অপরের কাজের প্রক্রিয়া সহজ করে তোলে। এতে তিনটি মূল উপাদান থাকে: Model, View, এবং Controller

১. Model (মডেল)


Model অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিকের প্রতিনিধিত্ব করে। এটি ব্যবহারকারীর ইনপুট প্রক্রিয়া, ডাটাবেসের সাথে যোগাযোগ এবং অন্যান্য বিজনেস রুলসের দায়িত্ব পালন করে। মডেল ডেটা বা অবজেক্টকে নিয়ে কাজ করে এবং কোন পরিবর্তন ঘটলে তা ভিউতে রিফ্রেশ করে।

  • ব্যবহার: মডেল অ্যাপ্লিকেশন বা ডাটাবেসের ভ্যালু বা অবজেক্ট ধারণ করে।
  • কাজ: ডেটা প্রসেসিং, লগিক্যাল কাজ, এবং ডাটাবেসে তথ্য পাঠানো বা গ্রহণ করা।

২. View (ভিউ)


View হল ব্যবহারকারীর জন্য প্রদর্শিত UI বা পেজ। এটি মডেলের ডেটা গ্রহণ করে এবং ব্যবহারকারীকে দেখায়। সাধারণত, জেএসপি পেজগুলি ভিউ হিসেবে কাজ করে, যেখানে মডেলের ডেটা প্রিন্ট করা হয় এবং HTML, CSS, JavaScript ব্যবহার করে কন্টেন্ট প্রদর্শিত হয়।

  • ব্যবহার: ভিউ ব্যবহারকারীকে কন্টেন্ট দেখানোর জন্য দায়িত্বশীল।
  • কাজ: মডেল থেকে ডেটা গ্রহণ করে এবং সেটি HTML বা অন্য কোনো ফরম্যাটে ব্যবহারকারীকে দেখায়।

৩. Controller (কন্ট্রোলার)


Controller হল অ্যাপ্লিকেশনের নিয়ন্ত্রক অংশ, যা মডেল এবং ভিউয়ের মধ্যে যোগাযোগ স্থাপন করে। এটি ইউজার রিকোয়েস্ট গ্রহণ করে, মডেলের সাথে যোগাযোগ করে ডেটা প্রসেস করে এবং পরে সঠিক ভিউ পেজে রিডিরেক্ট বা ফরওয়ার্ড করে।

  • ব্যবহার: কন্ট্রোলার সার্ভলেট হিসেবে কাজ করে, যা মডেল এবং ভিউয়ের মধ্যে লজিক্যাল বাউন্ডারি তৈরি করে।
  • কাজ: ব্যবহারকারীর রিকোয়েস্ট গ্রহণ, মডেল থেকে ডেটা গ্রহণ বা আপডেট করা, এবং ভিউতে ডেটা পাঠানো।

MVC কাজের প্রক্রিয়া


এখন চলুন দেখে নেওয়া যাক MVC প্যাটার্নের কাজের প্রক্রিয়া কীভাবে ঘটে:

  1. ব্যবহারকারী রিকোয়েস্ট পাঠায়:
    • ব্যবহারকারী ওয়েব পেজে একটি ইনপুট ফর্ম পূর্ণ করে এবং সাবমিট করে। এটি HTTP রিকোয়েস্টে কন্ট্রোলারের কাছে পাঠানো হয়।
  2. Controller রিকোয়েস্ট গ্রহণ করে:
    • কন্ট্রোলার (যেমন, একটি সার্ভলেট) ইনপুট রিকোয়েস্ট গ্রহণ করে এবং ইউজারের ইনপুট প্রক্রিয়া করার জন্য মডেলের সাথে যোগাযোগ করে।
  3. Model ডেটা প্রক্রিয়া করে:
    • কন্ট্রোলার মডেলকে প্রয়োজনীয় ডেটা বা ব্যবসায়িক লজিক প্রক্রিয়াকরণের জন্য কল করে। মডেল ডেটা প্রাপ্তি বা পরিবর্তনের কাজ সম্পন্ন করে।
  4. Controller ভিউতে রিডিরেক্ট বা ফরওয়ার্ড করে:
    • কন্ট্রোলার মডেল থেকে প্রাপ্ত ডেটা ভিউ (জেএসপি পেজ) এ পাঠায়। তারপর কন্ট্রোলার সেই ভিউ পেজে রিডিরেক্ট বা ফরওয়ার্ড করে, যেখানে ডেটা দেখানো হবে।
  5. View ডেটা প্রদর্শন করে:
    • ভিউ পেজে মডেল থেকে প্রাপ্ত ডেটা প্রিন্ট করা হয় এবং ব্যবহারকারীকে উপস্থাপন করা হয়।

উদাহরণ


ধরা যাক, একটি ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারী তার নাম এবং ইমেইল প্রদান করতে চায়। এখানে MVC প্যাটার্নের কাজের প্রক্রিয়া নিম্নরূপ হবে:

  1. ব্যবহারকারী ফর্ম পূর্ণ করে এবং সাবমিট করে

    HTML ফর্ম:

    <form action="userController" method="post">
        <input type="text" name="name" />
        <input type="email" name="email" />
        <input type="submit" value="Submit" />
    </form>
    
  2. Controller (userController) ফর্মের ডেটা গ্রহণ করে এবং মডেলকে ডেটা প্রক্রিয়া করার জন্য পাঠায়।

    Servlet Controller:

    public class UserController extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String name = request.getParameter("name");
            String email = request.getParameter("email");
    
            UserModel model = new UserModel();
            model.setName(name);
            model.setEmail(email);
    
            // মডেল থেকে ডেটা গ্রহণ এবং ভিউতে পাঠানো
            request.setAttribute("user", model);
            RequestDispatcher dispatcher = request.getRequestDispatcher("userView.jsp");
            dispatcher.forward(request, response);
        }
    }
    
  3. Model (UserModel) ডেটা প্রক্রিয়া করে এবং সেই ডেটা কন্ট্রোলারের মাধ্যমে ভিউতে পাঠায়।

    UserModel:

    public class UserModel {
        private String name;
        private String email;
    
        // গেটার এবং সেটার
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
    
        public String getEmail() { return email; }
        public void setEmail(String email) { this.email = email; }
    }
    
  4. View (userView.jsp) মডেল থেকে প্রাপ্ত ডেটা প্রদর্শন করে।

    UserView.jsp:

    <html>
    <body>
        <h2>ব্যবহারকারী তথ্য</h2>
        <p>নাম: <%= request.getAttribute("user").getName() %></p>
        <p>ইমেইল: <%= request.getAttribute("user").getEmail() %></p>
    </body>
    </html>
    

সারাংশ


Model-View-Controller (MVC) প্যাটার্নের কাজের প্রক্রিয়া খুবই সরল এবং দক্ষ। এটি Model এর মাধ্যমে ডেটা প্রক্রিয়া করে, View এর মাধ্যমে সেই ডেটা প্রদর্শন করে, এবং Controller এই দুটি অংশের মধ্যে সমন্বয় স্থাপন করে। এই প্যাটার্নের মাধ্যমে ওয়েব অ্যাপ্লিকেশন ডিজাইন করা সহজ, এবং কোডের পুনঃব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ ক্ষমতা বৃদ্ধি পায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...